基于FPGA的多路光電編碼器數(shù)據(jù)采集系統(tǒng)
2006/6/26 9:12:00
1.哈爾濱工業(yè)大學(xué)自動化測試與控制系 2.哈爾濱師范大學(xué)物理系 [摘 要]:介紹了一種基于現(xiàn)場可編程門陣列(FPGA)的多路光電編碼器數(shù)據(jù)采集系統(tǒng),包括其功能、原理、軟件編程和硬件實現(xiàn)電路。描述了該電路的4個主要功能:四倍頻細(xì)分、辨向、計數(shù)及串行通訊。根據(jù)波形的跳沿實現(xiàn)四倍頻細(xì)分;通過對波形相位的分析,采用基于相位變化的設(shè)計原理實現(xiàn)辨向。整個系統(tǒng)在QuartusⅡ軟件環(huán)境下實現(xiàn)編程,應(yīng)用Altera公司的EPFl0K20TCl44-3型芯片作為硬件載體,角度分辨力可達(dá)廣1。最后,給出了詳細(xì)的編程和仿真波形。 0 引 言 現(xiàn)今,光電編碼器被越來越多地用于角度的測量,由于它在測量角度方面的優(yōu)越性,已成為一種重要的角度傳感器,本設(shè)計中的角度傳感器是采用光電編碼器來實現(xiàn)的。以往對單路角度傳感器(光電編碼器)數(shù)據(jù)信號進(jìn)行四倍頻以及辨向處理時,多采用門級電路搭建的電路板,單片機(jī)和FPGA編程來實現(xiàn)。其中,使用電路板或單片機(jī)的方法通用性差、編譯復(fù)雜、電路板龐大、而且,響應(yīng)其他事件的實時性變差,不適合用于運(yùn)算速度快,且多路輸入的數(shù)據(jù)采集計算任務(wù)。隨著電子設(shè)計技術(shù)的飛速發(fā)展,用戶現(xiàn)場可編程門陣列(FPGA)的復(fù)雜程度越來越高,其所具備的功能也越來越多,芯片也向小型化發(fā)展,逐步成為復(fù)雜數(shù)字硬件電路設(shè)計的理想首選。FPGA/CPLD既繼承了ASIC的大規(guī)模、高集成度、高可靠性的優(yōu)點、又克服了普通ASIC設(shè)計周期長、投資大、靈活性差的缺點。FPGA的集成度很高,可完成極其復(fù)雜的時序和組合邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域。 1 方案設(shè)計 本系統(tǒng)是基于FPGA的數(shù)據(jù)采集電路,其多路輸入信號來自6個高精度角度傳感器——光電編碼器。每個角度傳感器均分別輸出兩路周期相同、相位差為90°的方波信號以及一個零位信號,設(shè)其中一個角度傳感器輸出的方波信號為A和B,零位信號為Z。當(dāng)需要對計數(shù)器進(jìn)行正計數(shù)時,A信號的上升沿及下降沿均超前B信號1/4周期;反之,當(dāng)需要對計數(shù)器進(jìn)行逆計數(shù)時,A信號的上升沿及下降沿均滯后B信號1/4周期。根據(jù)A信號相對于B信號的超前與滯后,計數(shù)器即可相應(yīng)地做出加計數(shù)或減計數(shù)的判斷。 圖1給出了角度傳感器有信號輸入時A,B信號的變化情況。圖中,前半部分為正計數(shù),后半部分為反計數(shù)。根據(jù)接收到的輸入信號相位差和A,B信號變化的周期數(shù)來使用計數(shù)器進(jìn)行計數(shù),就可以測算出角度傳感器傳來的數(shù)據(jù)的具體信息。 本文中,數(shù)據(jù)采集系統(tǒng)要完成的主要任務(wù)為:利用PP-GA芯片完成六路角度傳感器信號處理、四倍頻及判向功能,設(shè)計24位計數(shù)器,實現(xiàn)數(shù)據(jù)的鎖存、清零以及數(shù)據(jù)傳輸,系統(tǒng)功能框圖如圖2所示 圖2 系統(tǒng)功能框圖 圖中,A1~A6,Bl~B6為六路角度傳感器輸出的相位差為90°的方波信號、Z1~Z6為零位信號、數(shù)據(jù)為串行輸出、OE為使能信號,控制鎖存器存儲數(shù)據(jù)和輸出數(shù)據(jù)。 本設(shè)計中,角度傳感器提供輸入信號,其精度要求高,若對角度的測量要求分辯力到1″甚至0.1″,則信號頻率相對較高。根據(jù)設(shè)計要求,估算整個電路所需要的管腳和宏單元的個數(shù),以及以后系統(tǒng)的可升級空間,本設(shè)計選用芯片EPFIOK20TCl44-3。它是Altera公司FLEX1OK系列產(chǎn)品之一,是一種嵌入式可編程邏輯器件,采用CMOSSRAM制造工藝,使用SRAM來存儲編程數(shù)據(jù),具有在系統(tǒng)中可編程特性。EPFl0K20TCl44—3具有高密度、高速度、低功耗等特點。芯片內(nèi)含有專用進(jìn)位鏈,級聯(lián)鏈以及快速通道,故其互連方式十分靈活。 2具體電路設(shè)計 本系統(tǒng)的主要功能通過Altera公司Quartus II軟件系統(tǒng)提供的集成化文本編輯程序?qū)崿F(xiàn),即硬件描述語言輸入方式。該方式適合于輸入和編輯諸如VHDL,Verilog HDL,Altera公司的AHDL等硬件描述語言的設(shè)計輸入文件。硬件描述語言輸入方式的特點是效率較高、結(jié)果也較容易仿真、信號觀察也比較方便,而且,在不同的設(shè)計輸入庫之間轉(zhuǎn)換非常方便,下面介紹系統(tǒng)主要電路的設(shè)計。 2.1 實現(xiàn)四倍頻、辨向和計數(shù) 以一路角度傳感器所發(fā)出的方波信號為例,如圖1所示,通過對A和B信號的上升沿和下降沿進(jìn)行計數(shù)實現(xiàn)四頻;并通過在每個跳變沿判斷A與B的電平高低來實現(xiàn)辨向,真值表如表1,表2所示。 表1 A信號跳變真值表 表2 B信號跳變真值表 由表1、表2可知,當(dāng)信號A和B發(fā)生跳變時,對A和B進(jìn)行異或邏輯運(yùn)算,即可判斷對計數(shù)器進(jìn)行加操作還是減操作。流程圖如圖3所示。 圖3 辨向與計數(shù)流程圖 2.2 數(shù)據(jù)鎖存 方波信號經(jīng)過四倍頻并計數(shù)后所得到的6組數(shù)據(jù),當(dāng)需要向上位機(jī)傳輸時,因為內(nèi)部各計數(shù)單元工作屬于動態(tài)過程,因此,在向外部傳輸數(shù)據(jù)時,需先將6組數(shù)據(jù)分別存人6個鎖存器中再讀取數(shù)據(jù),以保證讀出穩(wěn)定的數(shù)據(jù)。在本設(shè)計中,鎖存器是由VHDL語言描述的同步鎖存器。所謂同步鎖存器指的是復(fù)位和加載功能全部與時鐘同步,復(fù)位端的優(yōu)先級較高。在數(shù)字系統(tǒng)設(shè)計時,采用完全同步的鎖存器,可以避免時序錯誤。 2.3 數(shù)據(jù)傳輸 串行輸出口采用標(biāo)準(zhǔn)的RS—232協(xié)議,6個鎖存器輸出的數(shù)據(jù)將先存人FIFO(先進(jìn)先出寄存器),然后,通過串口將數(shù)據(jù)發(fā)送到PC。 數(shù)據(jù)串行輸出如圖4所示。 串行輸出的主要參數(shù)的選擇:波特率為9600bit/s,8位有效位、無奇偶校驗位、1位停止位。串行通信中,必須有時鐘脈沖信號對所傳送的數(shù)據(jù)進(jìn)行定位和同步控制,設(shè)計中,采用的時鐘頻率時波特率的2倍(19200bit/s)。發(fā)送過程:串口模塊初始狀態(tài)是等待狀態(tài),接收到觸發(fā)信號fifo-rd則進(jìn)入發(fā)送過程,先發(fā)送起始位,再發(fā)送8位比特數(shù),每位寬度為2個周期,當(dāng)一個字節(jié)發(fā)送完畢后,發(fā)送一個停止位,回到等待狀態(tài)。 3 調(diào)試與仿真 如圖5所示,countl~count6為六路角度傳感器輸入信號經(jīng)過四倍頻、辨向、計數(shù)后的仿真波形。Zl~Z6為角度傳感器輸入的零位信號,OE為輸出使能信號。其中,第二路仿真角度傳感器反向旋轉(zhuǎn)的過程,所以,A2信號滯后B2信號1/4周期,count2計數(shù)器為負(fù)值。本系統(tǒng)仿真中使用的方波頻率為19.1MHz,而所使用的角度傳感器每旋轉(zhuǎn)一周輸出的方波個數(shù)為1 296000個,按照每秒旋轉(zhuǎn)一周計算,方波信號頻率為1.2MHz,仿真信號足要求。 圖5 輸出仿真波形圖 4 結(jié) 論 本設(shè)計經(jīng)過仿真、編譯實現(xiàn)后,將代碼下載至EPC1441可編程配置芯片,屬于主動配置模式。在接口模塊上電后,EPC1441自動對EPFl0K20TCl44-3芯片進(jìn)行配置。該芯片成功地完成了對六自由度坐標(biāo)測量系統(tǒng)輸出信號的處理,性能穩(wěn)定可靠。如果在此設(shè)計的基礎(chǔ)上載譯碼驅(qū)動等外圍電路,即可直接與PC機(jī)連接,或者加上顯示電路單獨使用。
提交
查看更多評論
其他資訊
智光節(jié)能內(nèi)蒙古阿拉善左旗瀛海建材余熱發(fā)電機(jī)組首次啟動成功
智光電氣臺州電廠給水泵系統(tǒng)節(jié)能改造項目成功投運(yùn)
智光節(jié)能榮登2014年度全國節(jié)能服務(wù)公司百強(qiáng)榜第五位
索引程序編程凸輪表
奧越信300系列PLC手冊